import java.util.LinkedList;
import java.util.Queue;

public class MyStack {
    private Queue<Integer>queue1=new LinkedList<>();
    private Queue<Integer>queue2=new LinkedList<>();

    public MyStack() {

    }
    //将元素 x 压入栈顶
    public void push(int x) {
        queue1.offer(x);
    }
    //移除并返回栈顶元素
    public int pop() {
        if(empty()){//栈为空
            return -1;
        }
        while (queue1.size()-1>0){
            queue2.offer(queue1.poll());
        }
        int tmp=queue1.poll();//栈顶元素
        while (queue2.size()>0) {
            queue1.offer(queue2.poll());
        }
        return tmp;
    }
    //返回栈顶元素
    public int top() {
        if(empty()){//栈为空
            return -1;
        }
        while (queue1.size()-1>0){
            queue2.offer(queue1.poll());
        }
        int tmp=queue1.peek();//查看栈顶元素
        queue2.offer(queue1.poll());//放入队列2
        //全部移入队列1
        while (queue2.size()>0) {
            queue1.offer(queue2.poll());
        }
        return tmp;
    }
    //如果栈是空的，返回 true ；否则，返回 false
    public boolean empty() {
        if(queue1.size()==0&&queue2.size()==0){//栈为空
            return true;
        }
        return false;
    }
}
